| shape% - добавленое тело pitch#, yaw#, roll# - углы поворота |
| Вращает добавленое тело относительно локальных координат связки. |
|
;Пример использования функции ;pxCompoundSetShapeRot Graphics3D 800, 600, 32, 2 SetBuffer BackBuffer() PxCreateWorld(1) pxSetGravity(0, -10, 0) camera=CreateCamera() light=CreateLight() PositionEntity camera,0,20,-40 RotateEntity camera,30,0,0 plane=CreatePlane() EntityColor plane,0,100,200 EntityAlpha plane,0.5 mir = CreateMirror() ;Создаем отображаемое составное тело comp_mesh = CreateCube() ScaleEntity comp_mesh, 1,1,1 PositionMesh comp_mesh, -4,0,0 comp_cyl_mesh = CreateCylinder() ScaleMesh comp_cyl_mesh, 1,2,1 PositionMesh comp_cyl_mesh, -2,0,0 AddMesh comp_cyl_mesh , comp_mesh FreeEntity comp_cyl_mesh comp_sp_mesh = CreateSphere() PositionMesh comp_sp_mesh, 0,0,0 AddMesh comp_sp_mesh , comp_mesh FreeEntity comp_sp_mesh comp_cap_mesh = Mesh_Capsule(0.5, 6) PositionMesh comp_cap_mesh, 2,0,0 ;RotateMesh comp_cap_mesh, 0,0,90 AddMesh comp_cap_mesh , comp_mesh FreeEntity comp_cap_mesh ;Создаем составное тело PX comp_desc = pxCreateCompoundDesc() comp_cube_shape = pxCompoundAddCubeShape(comp_desc, 1, 1, 1) pxCompoundSetShapePos (comp_cube_shape, -4,0,0) ;----------- применяем pxCompoundSetShapeRot: ------------ pxCompoundSetShapeRot (comp_cube_shape, 0,0,0) comp_cyl_shape = pxCompoundAddCylinderShape(comp_desc, 1, 2, 8) pxCompoundSetShapePos (comp_cyl_shape, -2,0,0) ;----------- применяем pxCompoundSetShapeRot: ------------ pxCompoundSetShapeRot (comp_cyl_shape, 0,0,0) comp_sp_shape = pxCompoundAddSphereShape(comp_desc, 1) pxCompoundSetShapePos (comp_sp_shape, 0,0,0) comp_cap_shape = pxCompoundAddCapsuleShape(comp_desc, 0.5, 6) pxCompoundSetShapePos (comp_cap_shape, 2,0,0) ;----------- применяем pxCompoundSetShapeRot: ------------ pxCompoundSetShapeRot (comp_cap_shape, 0,0,00) comp_body = pxCreateCompound(comp_desc, 2); создаём боди из дескриптора pxSetPosition(comp_body ,0,5,0) ;Создадим кубик cu = pxCreateCube( 1, 1, 1, 1) pxSetPosition(cu,0,10,0) cu_mesh = CreateCube() EntityColor cu_mesh,255,0,0 ;цвет - зеленый While Not KeyDown( 1 ) If KeyDown(200) pxAddForce(cu,0,0,20,0) If KeyDown(208) pxAddForce(cu,0,0,-20,0) If KeyDown(205) pxAddForce(cu,20,0,0,0) If KeyDown(203) pxAddForce(cu,-20,0,0,0) ;обсчитываем физический мир RenderPhysic(60,0) ;ставим тела в позиции pxSetEntity(comp_mesh, comp_body) pxSetEntity(cu_mesh , cu) RenderWorld Text 10,10,"Курсор - управляет зеленым телом" Flip Wend End ;Создает визуализацию капсулы Function Mesh_Capsule(radius#, height#) ;на основе цилиндра capsule= CreateCylinder() ScaleMesh capsule, radius, height/2, radius PositionMesh capsule,0,0,0 ;И двух сфер sphere1 = CreateSphere() ScaleMesh sphere1,radius,radius,radius PositionMesh sphere1,0, height/2,0 AddMesh sphere1,capsule sphere2 = CreateSphere() ScaleMesh sphere2,radius,radius,radius PositionMesh sphere2,0, -height/2,0 AddMesh sphere2,capsule FreeEntity sphere1 FreeEntity sphere2 HideEntity capsule Return capsule End Function |
К содержанию
Нажмите здесь чтобы увидеть последнюю версию этой странички в режиме online.